home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / vis082s.arc / MAILRET.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-17  |  2KB  |  91 lines

  1. {$R-,S-,I-,D-,F+,V-,B-,N-,L+,O+ }
  2.  
  3. unit mailret;
  4.  
  5. interface
  6.  
  7. uses gentypes,gensubs,subs1,configrt,statret,textret;
  8.  
  9. function searchmail (startpt,usernum:integer):integer;
  10. procedure delmail (n:integer);
  11. procedure addmail (sentto:integer; line:integer; var me:message);
  12. function getnummail (un:integer):integer;
  13.  
  14. implementation
  15.  
  16. function searchmail (startpt,usernum:integer):integer;
  17. var cnt:integer;
  18.     m:mailrec;
  19. begin
  20.   searchmail:=0;
  21.   if startpt>=filesize(mfile)-1 then exit;
  22.   startpt:=startpt+1;
  23.   seek (mfile,startpt); che;
  24.   for cnt:=startpt to filesize(mfile)-1 do begin
  25.     read (mfile,m); che;
  26.     if m.sentto=usernum then begin
  27.       searchmail:=cnt;
  28.       exit
  29.     end
  30.   end
  31. end;
  32.  
  33. procedure delmail (n:integer);
  34. var m:mailrec;
  35.     c:integer;
  36. begin
  37.   seek (mfile,n);
  38.   read (mfile,m);
  39.   deletetext (m.line);
  40.   for c:=n to filesize(mfile)-2 do begin
  41.     seek (mfile,c+1);
  42.     read (mfile,m);
  43.     seek (mfile,c);
  44.     write (mfile,m)
  45.   end;
  46.   seek (mfile,filesize(mfile)-1);
  47.   truncate (mfile);
  48.   if filesize(mfile)=0 then begin
  49.     m.sentto:=0;
  50.     seek (mfile,0);
  51.     write (mfile,m)
  52.   end
  53. end;
  54.  
  55. procedure addmail (sentto:integer; line:integer; var me:message);
  56. var m:mailrec;
  57.     u:userrec;
  58. begin
  59.   m.sentby:=unam;
  60.   m.anon:=me.anon;
  61.   m.when:=now;
  62.   m.title:=me.title;
  63.   m.line:=line;
  64.   m.sentto:=sentto;
  65.   m.read:=false;
  66.   seek (mfile,filesize(mfile));
  67.   write (mfile,m);
  68.   seek (ufile,sentto);
  69.   read (ufile,u);
  70.   if match(u.handle,configset.sysopnam) then newmail:=newmail+1
  71. end;
  72.  
  73. function getnummail (un:integer):integer;
  74. var cnt:integer;
  75.     m:mailrec;
  76.     total:integer;
  77. begin
  78.   total:=0;
  79.   seek (mfile,0);
  80.   for cnt:=1 to filesize(mfile) do begin
  81.     read (mfile,m);
  82.     if m.sentto=un then total:=total+1
  83.   end;
  84.   getnummail:=total
  85. end;
  86.  
  87.  
  88. begin
  89. end.
  90.  
  91.